package com.xiaotu.storage;

import com.xiaotu.common.util.Constants;
import com.xiaotu.common.util.DataRedisKeyUtils;
import com.xiaotu.common.util.SepratorUtil;
import com.xiaotu.storage.AHSetStorageProcessor;
import com.xiaotu.storage.converter.AConverter;
import com.xiaotu.storage.converter.ConverterFactory;
import com.xiaotu.storage.model.CacheDataModel;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @类名 MovieAiManDetailStorageProcessor
 * @日期 2017年11月29日
 * @作者 WangYanLong
 * @功能  艾漫电影详情信息存储实现类
 */
@Component("MovieAiManDetailStorageProcessor")
public class MovieAiManDetailStorageProcessor extends AHSetStorageProcessor
{
    public static final String[] FIELD_ARR = new String[]{"tvId","fdate","activeValue","changeValue",
    		"retainValue","lossValue","newValue","loyaltyValue","leaveValue","avgLeaveValue","timestamp"};

    private static final String[] CONVERT_ARR = new String[]{
    		AConverter.STRING_CONVERT, AConverter.STRING_CONVERT, AConverter.STRING_CONVERT, 
    		AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,AConverter.STRING_CONVERT,
    		AConverter.STRING_CONVERT,AConverter.RATE_CONVERT,AConverter.RATE_CONVERT,
    		AConverter.STRING_CONVERT,AConverter.TIMESTAMP_CONVERT};
    private static final boolean[] THROW_ARR = new boolean[]{true, true,true,true,
    		true, true, true,true,true,true, true};

    @Override
    protected String getRedisKey(Date date)
    {
        return DataRedisKeyUtils.getKey(Constants.DataRedisKey.MOVIE_AIMAN_DETAIL_YYYYMMDD, date);
    }

    @Override
    public String process(JSONObject target, CacheDataModel cacheData, Date date)
    {
        return this.list2CSVLine(ConverterFactory.convert(target, FIELD_ARR, CONVERT_ARR,
                THROW_ARR), SepratorUtil.SEP_PIPE);
    }

    @Override
    public String getDataType()
    {
        return Constants.PageDataType.SEARCH_LIST;
    }

    @Override
    public String getTaskType()
    {
        return Constants.SpiderTaskType.MOVIE_AIMAN;
    }
}
